<?php

/*
 * 文件说明.
 * 
 * @author Kun Xu <kunx@jumei.com>
 */

/**
 * Description of authController
 *
 * @author 坤
 */
class AuthController extends Controller
{

    /**
     * 生成auth文件
     */
    public function actionIndex()
    {
        $auth = Yii::app()->authManager;

        $auth->createOperation('createPost', 'create a post');
        $auth->createOperation('readPost', 'read a post');
        $auth->createOperation('updatePost', 'update a post');
        $auth->createOperation('deletePost', 'delete a post');

        $bizRule = 'return Yii::app()->user->id==$params["post"]->authID;';
        $task = $auth->createTask('updateOwnPost', 'update a post by author himself', $bizRule);
        $task->addChild('updatePost');

        $role = $auth->createRole('reader');
        $role->addChild('readPost');

        $role = $auth->createRole('author');
        $role->addChild('reader');
        $role->addChild('createPost');
        $role->addChild('updateOwnPost');

        $role = $auth->createRole('editor');
        $role->addChild('reader');
        $role->addChild('updatePost');

        $role = $auth->createRole('admin');
        $role->addChild('editor');
        $role->addChild('author');
        $role->addChild('deletePost');

        $auth->assign('reader', 'readerA');
        $auth->assign('author', 'authorB');
        $auth->assign('editor', 'editorC');
        $auth->assign('admin', 'adminD');
        $auth->save();
        echo 'auth文件已生成' . $auth->authFile;
    }

    public function actionCheck()
    {
        $r = Yii::app()->user->checkAccess('createPost');
        var_dump($r);
    }

}
